Can learning non-programming languages make you a better programmer?
That’s what I wondered about when I got an email containing this bit:
I took four years of german in university and I think the knowledge has always made me a better programmer.
So, among my reply, I asked the guy to explain that, and later for permission to reproduce his reply here:
I spent twelve years off and on living in Germany as a child in Mainz, as a high school student in Wiesbaden, and in college at the Goethe Institute in Schwabsiche Halle. I eventually got a degree in german and econ from George Washington University in DC.
I didn’t start programming until graduate school at the University of Southern California and I am currently finishing a phd at Virginia Tech.
By profession I have been a Marine Pilot(CH53), management consultant(KPMG),CEO(Datacyr and Topik Solutions), and since 9/11 working exclusively with the US government developing semantic search engines (sesame, lucene, rdf, and sparql). I also spent many years in the data warehouse field building in-memory ETL engines.
Languages come in all shapes and sizes, as you know.
The human species and those members who appear to survive and evolve fitness adaptations better than others, do so through language. The primary goal of any language is to improve search skills(Google) and the tools to control resources(The Third Reich). The structure of both german and c require a very ordered syntax when arranging symbols(info), motion(services), and objects(things) in the mind’s mental model of the world. Unlike english, which allows for some flexibility in ordering the mental model of the world, german enforces a structured approach to control and memory management not found in english. It is no accident that SAP has been so successful as a technology and a company.
I have had to program in a dozen languages and across as many operating systems. Since my work is all about data manipulation, design, and models, I always come back to c when I have to achieve ultimate control (memory) and performance(pointers). Without an early education in german, I don’t believe I would have ever achieved what I have been able to accomplish in the technology field.
My phd develops the theory of semantic intelligence. The theory is based on the concept that human cognition is a type of computational model that can be implemented in software.
Thus my admiration for the elegance of jQuery and your validation plugin as a structure for optimizing search and control in human computer interfaces.
With german as my native language and english as a key requirement for learning to program, I can’t really reflect this well with my own experiences. The four years I learnt a bit o french at school certainly didn’t make a difference. I’d like to hear from others if they had similar experiences when learning other languages.